home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
tex
/
td187src.lzh
/
GETFILE.D
< prev
next >
Wrap
Text File
|
1991-12-14
|
3KB
|
99 lines
DEFINITION MODULE GetFile;
PROCEDURE GetFileName(VAR FullFileName : ARRAY OF CHAR;
VAR Filename : ARRAY OF CHAR;
REF LookExtension : ARRAY OF CHAR;
REF StdExtension : ARRAY OF CHAR;
VAR Startpath : ARRAY OF CHAR;
REF TOS14Msg : ARRAY OF CHAR;
VAR Exists : BOOLEAN;
LeaveFilename : BOOLEAN;
HasToExist : BOOLEAN;
ExtNeeded : BOOLEAN;
WildcardOK : BOOLEAN ) : BOOLEAN;
(*
Liest via FileSelectorBox einen Dateinamen ein.
Fügt falls gewünscht ( ExtNeeded = TRUE ) eine Standard-Dateikennung
an ( StdExtension ), sofern eine solche nicht bereits vorhanden ist.
Ist der angegebene Startpfad ( Startpath ) leer, so wird zunächst der
Standard-Pfad benutzt.
Zusätzlich kann bei den TOS-Versionen ab 1.4 noch eine kleine Meldung
am Kopf der FileSelectBox ausgegeben werden.
Falls die gesuchte Datei existieren soll ( HasToExist = TRUE ), wird
solange gefragt, bis eine gültige, existierende Datei angegeben wird.
Zudem wird noch zurückgegeben, ob bereits eine Datei gleichen
Namens existiert ( Exists ).
Ist WildcardOK = TRUE so wird bei leerer Eingabe diese in "*.*"
gewandelt. Sind schlußendlich im Namen Wildcards ("*", "?") vorhanden,
so wird bei HasToExist überprüft, ob es überhaupt eine passende Datei
gibt.
Der voreingestellte Filename wird nur dann nicht gelöscht, wenn
LeaveFilename = TRUE ist.
*)
PROCEDURE FileExists ( REF Filename : ARRAY OF CHAR ) : BOOLEAN;
(*
Existiert die angegebene Datei ?
*)
PROCEDURE FileSize ( REF Filename : ARRAY OF CHAR ) : LONGCARD;
(*
Liefert Dateigröße in Bytes zurück, bei Fehler Null.
*)
PROCEDURE StdPath ( VAR stdpath : ARRAY OF CHAR );
(*
Liefert den aktuellen Pfad zurück (mit Laufwerk)
*)
PROCEDURE AddExtension( VAR FileName : ARRAY OF CHAR;
REF Extension : ARRAY OF CHAR );
(*
Fügt an Dateiname Extension an.
*)
PROCEDURE ReplaceFilename(VAR Target : ARRAY OF CHAR;
REF RepStr : ARRAY OF CHAR);
(*
Ersetzt in Dateinamen den eigentlichen Namen.
Pfad bleibt dabei unangetastet.
*)
PROCEDURE ReplaceExtension(VAR Target : ARRAY OF CHAR;
REF RepStr : ARRAY OF CHAR);
(*
Ersetzt in Dateinamen die Dateiextension (ohne '.' anzugeben).
Pfad bleibt dabei unangetastet.
*)
PROCEDURE ReplacePath(VAR Target : ARRAY OF CHAR;
REF RepStr : ARRAY OF CHAR);
(*
Ersetzt in Dateinamen den Pfad.
Reiner Name bleibt dabei unangetastet.
*)
PROCEDURE RemovePath(VAR Target : ARRAY OF CHAR);
(*
Entfernt eventuelle Pfadangabe und läßt den reinen Name übrig.
*)
PROCEDURE Check(VAR file : ARRAY OF CHAR) : BOOLEAN;
(*
Falls Datei nicht existiert -> TRUE.
Falls vorhanden, dann Warnmeldung mit Abfrage.
Dann Möglichkeit der Änderung des Namen.
Bei Abbruch FALSE.
*)
TYPE FileProc = PROCEDURE (REF ARRAY OF CHAR);
PROCEDURE WildcardFile( REF Wildcard : ARRAY OF CHAR;
Action : FileProc);
(*
Der Prozedur Action werden nacheinander alle Dateinamen (mit Pfad,
sofern in Wildcard angegeben) übergeben, die auf Wildcard passen.
*)
END (* of definition module *) GetFile .